#include<iostream>
using namespace std;

namespace test3 {
    class ClassA;
    class ClassB;

    void showValues(const ClassA& a, const ClassB& b);

    class ClassA {
        friend void showValues(const ClassA& a, const ClassB& b);
    private:
        int valueA;
    public:
        ClassA(int a) : valueA(a) {};
    };

    class ClassB {
        friend void showValues(const ClassA& a, const ClassB& b);
    private:
        int valueB;
    public:
        ClassB(int b) : valueB(b) {};
    };

    void showValues(const ClassA& a, const ClassB& b) {
        cout << "a.valueA = " << a.valueA << endl;
        cout << "b.valueB = " << b.valueB << endl;
    }

    int main2() {
        ClassA a(10);
        ClassB b(20);
        showValues(a, b);
        return 0;
    }
}